package com.ruoyi.examination.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import java.util.Date;

public class ExamSchedule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 考试安排表id */
    @Excel(name = "考试安排表id")
    private String examScheduleId;

    /** 班级id */
    @Excel(name = "班级id")
    private String trainingClassId;

    /** 考试id */
    @Excel(name = "考试id")
    private String paperConfigId;

    /** 考试开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "考试开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date examStartTime;

    /** 考试结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "考试结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date examEndTime;

    /** 考试时长(分钟) */
    @Excel(name = "考试时长(分钟)")
    private Integer examDuration;

    /** 考试地址 */
    @Excel(name = "考试地址")
    private String examLocation;

    /** 考试途径（0-手机、1-电脑） */
    @Excel(name = "考试途径", readConverterExp = "0-手机、1-电脑")
    private String examPathway;

    /** 考试通过分数 */
    @Excel(name = "考试通过分数")
    private Integer examPassScore;

    /** 是否提交后立刻发布成绩（0-是，1-否） */
    @Excel(name = "是否提交后立刻发布成绩", readConverterExp = "0=-是，1-否")
    private String ifReleaseResultsImmediately;

    /** 是否同意自动补考（0-是，1-否） */
    @Excel(name = "是否同意自动补考", readConverterExp = "0=-是，1-否")
    private String ifAgreeAutomaticExam;

    /** 成绩发布时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "成绩发布时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date resultsAnnouncementTime;

    /** 补考次数 */
    @Excel(name = "补考次数")
    private Integer examTimes;

    /** 监考人员 */
    @Excel(name = "监考人员")
    private String invigilatorId;

    /** 试卷份数 */
    private int counts;

    public int getCounts() {
        return counts;
    }

    public void setCounts(int counts) {
        this.counts = counts;
    }

    public void setExamScheduleId(String examScheduleId)
    {
        this.examScheduleId = examScheduleId;
    }

    public String getExamScheduleId()
    {
        return examScheduleId;
    }

    public void setTrainingClassId(String trainingClassId)
    {
        this.trainingClassId = trainingClassId;
    }

    public String getTrainingClassId()
    {
        return trainingClassId;
    }

    public void setExamStartTime(Date examStartTime)
    {
        this.examStartTime = examStartTime;
    }

    public Date getExamStartTime()
    {
        return examStartTime;
    }

    public void setExamEndTime(Date examEndTime)
    {
        this.examEndTime = examEndTime;
    }

    public Date getExamEndTime()
    {
        return examEndTime;
    }

    public void setExamDuration(Integer examDuration)
    {
        this.examDuration = examDuration;
    }

    public Integer getExamDuration()
    {
        return examDuration;
    }

    public void setExamLocation(String examLocation)
    {
        this.examLocation = examLocation;
    }

    public String getExamLocation()
    {
        return examLocation;
    }

    public void setExamPathway(String examPathway)
    {
        this.examPathway = examPathway;
    }

    public String getExamPathway()
    {
        return examPathway;
    }

    public void setExamPassScore(Integer examPassScore)
    {
        this.examPassScore = examPassScore;
    }

    public Integer getExamPassScore()
    {
        return examPassScore;
    }

    public void setIfReleaseResultsImmediately(String ifReleaseResultsImmediately)
    {
        this.ifReleaseResultsImmediately = ifReleaseResultsImmediately;
    }

    public String getIfReleaseResultsImmediately()
    {
        return ifReleaseResultsImmediately;
    }

    public void setIfAgreeAutomaticExam(String ifAgreeAutomaticExam)
    {
        this.ifAgreeAutomaticExam = ifAgreeAutomaticExam;
    }

    public String getIfAgreeAutomaticExam()
    {
        return ifAgreeAutomaticExam;
    }

    public void setResultsAnnouncementTime(Date resultsAnnouncementTime)
    {
        this.resultsAnnouncementTime = resultsAnnouncementTime;
    }

    public Date getResultsAnnouncementTime()
    {
        return resultsAnnouncementTime;
    }

    public void setExamTimes(Integer examTimes)
    {
        this.examTimes = examTimes;
    }

    public Integer getExamTimes()
    {
        return examTimes;
    }

    public void setInvigilatorId(String invigilatorId)
    {
        this.invigilatorId = invigilatorId;
    }

    public String getInvigilatorId()
    {
        return invigilatorId;
    }

    public String getPaperConfigId() {
        return paperConfigId;
    }

    public void setPaperConfigId(String paperConfigId) {
        this.paperConfigId = paperConfigId;
    }

    @Override
    public String toString() {
        return "ExamSchedule{" +
                "examScheduleId='" + examScheduleId + '\'' +
                ", trainingClassId='" + trainingClassId + '\'' +
                ", paperConfigId='" + paperConfigId + '\'' +
                ", examStartTime=" + examStartTime +
                ", examEndTime=" + examEndTime +
                ", examDuration=" + examDuration +
                ", examLocation='" + examLocation + '\'' +
                ", examPathway='" + examPathway + '\'' +
                ", examPassScore=" + examPassScore +
                ", ifReleaseResultsImmediately='" + ifReleaseResultsImmediately + '\'' +
                ", ifAgreeAutomaticExam='" + ifAgreeAutomaticExam + '\'' +
                ", resultsAnnouncementTime=" + resultsAnnouncementTime +
                ", examTimes=" + examTimes +
                ", invigilatorId='" + invigilatorId + '\'' +
                ", counts=" + counts + '\'' +'}';
    }
}